﻿namespace NHibernateLab.DAL.Domain
{
  /// <summary>
  /// The product entity class
  /// </summary>
  public class Product
  {
    /// <summary>
    /// The product id.
    /// </summary>
    private long id;

    /// <summary>
    /// The product name.
    /// </summary>
    private string name;

    /// <summary>
    /// The product EAN.
    /// </summary>
    private string number;

    /// <summary>
    /// Initializes a new instance of the <see cref="Product"/> class.
    /// </summary>
    public Product()
    {

    }

    /// <summary>
    /// Initializes a new instance of the <see cref="Product"/> class.
    /// </summary>
    /// <param name="id">The product id.</param>
    /// <param name="name">The product name.</param>
    /// <param name="number">The product number.</param>
    public Product(long id, string name, string number)
    {
      this.id = id;
      this.name = name;
      this.number = number;
    }

    /// <summary>
    /// Gets or sets the id.
    /// </summary>
    /// <value>The product id.</value>
    public virtual long Id
    {
      get { return this.id; }
      set { this.id = value; }
    }

    /// <summary>
    /// Gets or sets the name.
    /// </summary>
    /// <value>The prodcut name.</value>
    public virtual string Name
    {
      get { return this.name; }
      set { this.name = value; }
    }

    /// <summary>
    /// Gets or sets the number.
    /// </summary>
    /// <value>The prodcut number.</value>
    public virtual string Number
    {
      get { return this.number; }
      set { this.number = value; }
    }
  }
}
